home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dr.bub / 96000.lha / 96000 / appb / b126.asm < prev    next >
Assembly Source File  |  1992-04-28  |  2KB  |  37 lines

  1. ; This program was originally published in the Motorola DSP96002 Users Manual
  2. ; and is provided under a DISCLAIMER OF WARRANTY available from Motorola DSP
  3. ; Operation, 6501 William Cannon Drive West, Austin, Texas 78735-8598.  For
  4. ; more information, refer to the DSP96002 Users Manual, Appendix B, DSP
  5. ; Benchmarks.
  6. ;
  7. ; B.1.26    Non-IEEE floating-point Division  
  8. ;The following code segments perform the division of d0/d5.  The  resulting quotient is in d0.  These 
  9. ;code segments are used for  a fast division without the need to conform to the error checking  or er-
  10. ;ror bounds of the IEEE standard.  
  11. ;The code uses a "convergent division" algorithm.  The initial seed  obtained from the FSEEDD instruc-
  12. ;tion has 8 bits of accuracy.  Two  iterations of the convergent division algorithm provide approxi-
  13. ;mately 32  bits of accuracy.  For more information on the convergent division  algorithm, consult 
  14. ;"Computer Arithmetic, Principles, Architecture, and  Design" by Kai Hwang, 1979, John Wiley and 
  15. ;Sons, New York.  
  16. ;               Non-IEEE Division Algorithm 
  17. ;                                                            Program    ICycles 
  18. ;                                                            Words 
  19.     fseedd d5,d4                                     ;     1       1 
  20.     fmpy.s d5,d4,d5                    #2.0,d2.s     ;     2       2 
  21.     fmpy   d0,d4,d0    fsub.s d5,d2    d2.s,d3.s     ;     1       1 
  22.     fmpy.s d5,d2,d5                    d2.s,d4.s     ;     1       1 
  23.     fmpy   d0,d4,d0    fsub.s d5,d3                  ;     1       1 
  24.     fmpy.s d0,d3,d0                                  ;     1       1 
  25.                                                      ;    ---     --- 
  26. ;                                                 Totals:  7       7 
  27.  
  28. ;Operation table: 
  29. ;                         d0 (dividend) 
  30. ;                                      / 
  31. ;      0.0      number      infinity  /  d5 (divisor) 
  32. ;------------------------------------/ 
  33. ;      NaN      NaN         NaN             0.0 
  34. ;      0.0     number      infinity         number 
  35. ;      NaN      NaN         NaN             infinity 
  36.